package com.aracky.system.service;

import com.aracky.common.vo.PageVO;
import com.aracky.system.model.entity.SysUser;
import com.aracky.system.model.form.LoginUserForm;
import com.aracky.system.model.request.SysUserRequest;
import com.aracky.system.model.vo.SysUserVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.net.UnknownHostException;
import java.util.List;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author zzp
 * @since 2022-07-14 11:22:57
 */
public interface SysUserService extends IService<SysUser> {
    /**
     * 用户新增
     * @param sysUser
     * @return
     */
    public boolean save(SysUser sysUser);

    /**
     * 用户修改
     * @return
     */
    public int update(SysUser sysUser);

    /**
     * 根据用户Id删除用户
     * @param userId
     * @return
     */
    public int delete(Long userId);

    /**
     * 查询用户详情
     * @param userId
     * @return
     */
    public SysUser get(Long userId);

    /**
     * 用户分页查询
     * @param sysUserRequest
     * @return
     */
    public PageVO<SysUserVO> getUserPage(SysUserRequest sysUserRequest);

    /**
     * 分配角色给用户
     * @param userId
     * @param roleIds
     * @return
     */
    public void saveRole(Long userId,Long[] roleIds);

    /**
     * 检查邮箱是否唯一
     * @param email
     * @return
     */
    public Long getCheckByEmail(String email);

    /**
     * 检查账号是否唯一
     * @param loginName
     * @return
     */
    public Long getCheckLoginName(String loginName);

    /**
     * 检查电话号码是否唯一
     * @param phoneNumber
     * @return
     */
    public Long getCheckPhone(String phoneNumber);
    /**
     * 修改登录信息
     * @param userId
     */
    void updateLoginInfo(Long userId);

    /**
     * 保存微信用户信息
     * @param sysUserList
     */
    List<SysUser> saveWxUser(List<SysUser> sysUserList);
}
